package com.bf.electroplating.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 企业设备信息表
 * </p>
 *
 * @author gzd
 * @since 2025-09-22
 */
@Getter
@Setter
@TableName("company_device")
@Schema( description = "企业设备信息表")
public class CompanyDevice implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema( description ="设备ID")
    @TableId("ID")
    private String id;

    @Schema( description ="设备编号")
    @TableField("DEVICE_CODE")
    private String deviceCode;

    @Schema( description ="设备名称")
    @TableField("DEVICE_NAME")
    private String deviceName;

    @Schema( description ="所属企业ID")
    @TableField("COMPANY_ID")
    private String companyId;

    @Schema( description ="企业名称")
    @TableField("COMPANY_NAME")
    private String companyName;

    @Schema( description ="所属园区ID")
    @TableField("PARK_ID")
    private String parkId;

    @Schema( description ="园区名称")
    @TableField("PARK_NAME")
    private String parkName;

    @Schema( description ="所属监控点ID（关联WorkshopMonitoringPoint表）")
    @TableField("PLOT_ID")
    private String plotId;

    @Schema( description ="监控点名称")
    @TableField("PLOT_NAME")
    private String plotName;

    @Schema( description ="所属监控类型1生产2检测")
    @TableField("PLOT_TYPE")
    private String plotType;

    @Schema( description ="设备类型")
    @TableField("DEVICE_TYPE")
    private String deviceType;

    @Schema( description ="设备型号")
    @TableField("DEVICE_MODEL")
    private String deviceModel;

    @Schema( description ="设备状态（1：正常，2：故障，3：维修中，4：停用）")
    @TableField("DEVICE_STATUS")
    private String deviceStatus;

    @Schema( description ="安装日期")
    @TableField("INSTALLATION_DATE")
    private LocalDate installationDate;

    @Schema( description ="生产厂家")
    @TableField("MANUFACTURER")
    private String manufacturer;

    @Schema( description ="生产日期")
    @TableField("MANUFACTURE_DATE")
    private LocalDate manufactureDate;

    @Schema( description ="设备序列号")
    @TableField("SERIAL_NUMBER")
    private String serialNumber;

    @Schema( description ="设备IP地址")
    @TableField("IP_ADDRESS")
    private String ipAddress;

    @Schema( description ="经度")
    @TableField("LONGITUDE")
    private BigDecimal longitude;

    @Schema( description ="纬度")
    @TableField("LATITUDE")
    private BigDecimal latitude;

    @Schema( description ="设备描述")
    @TableField("DESCRIPTION")
    private String description;

    @Schema( description ="创建人")
    @TableField("CREATE_BY")
    private String createBy;

    @Schema( description ="创建时间")
    @TableField("CREATE_TIME")
    private LocalDateTime createTime;

    @Schema( description ="修改人")
    @TableField("UPDATE_BY")
    private String updateBy;

    @Schema( description ="修改时间")
    @TableField("UPDATE_TIME")
    private LocalDateTime updateTime;

    @Schema( description ="逻辑删除标志（0：未删除，1：已删除）")
    @TableField("DEL_FLAG")
    private String delFlag;

    @Schema(description ="启停阈值(A)")
    @TableField("START_STOP_THRESHOLD")
    private BigDecimal startStopThreshold;

    @Schema(description ="门限时间(秒)")
    @TableField("DOOR_LIMIT_TIME")
    private Integer doorLimitTime;

}
